home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
051-075
/
scopedisk66
/
qrt15
/
docs
/
addend15.doc
< prev
next >
Wrap
Text File
|
1995-03-19
|
9KB
|
265 lines
Addendum to QRT Version 1.5
The following are changes to QRT made since version 1.4
Additions and Enhancements
Non-Hardcoded Resolution and Aspect Ratio
This release of QRT has additional support for non-Amiga
platforms. The QRT input language has been extended to
allow the x and y resolution and aspect ratio to be
changed. The additional keywords are part of the
DEFAULT() command, as in this example:
DEFAULT (
x_res = 1280, { ** BIG image ** }
y_res = 1024,
aspect = .89
);
QRT can generate images in any practical resolution (I
have tested it up to 1280 x 1024; the current limit is
2500 x anything) but the image generation time is
proportional to the image size. The aspect ratio for any
monitor can be determined as follows:
aspect ratio = (XR/XD)/(YR/YD)
where:
XR = X resolution of monitor
XD = width of monitor in arbitrary units
YR = Y resolution of monitor
YD = height length of monitor in arbitrary units
There are #ifdefs in the code which should provide
reasonable defaults for UNIX and AMIGA machines. Images
can now be generated quickly in low resolutions, and once
the desired image is found, it can be generated the full
displayable resolution.
QRT Ray Tracer Page 1 Addendum to 1.5
Command Line Arguments
QRT now accepts optional command line arguments, as
follows:
-xres integer
-yres integer
-aspect float
-foclen float
For example, the following line would run QRT in the
background with a resolution of 127 x 127:
run qrt <file.QRT >file.OUT -xres 127 -yres 127
or, in UN*X,
qrt <file.QRT >file.OUT -xres 127 -yres 127 &
These options are very useful for generating preliminary
images in a low resolution without changing the .QRT input
file. Since it is possible to set these parameters from 3
places, QRT places them in order of increasing priority as
follows:
Built-in Defaults
Parameters in .QRT file
Command Line Arguments
Thus, any command line arguments present will supersede
parameters coded into the .QRT file, and parameters in the
QRT file, if present, will supersede the built in QRT
defaults.
Bug Fixes
Version 1.5 of QRT fixes these bugs:
1) Lexer malloc() bug - the lexer was not allocating
enough memory for some symbols, causing QRT to
crash upon reading certain input files. This has
been fixed.
2) toupper() compatibility bug - apparently not all
compilers treat toupper() the same - some change
only lower case letters, as seems logical, while
others change all characters. This function is no
longer used in QRT to decrease porting effort.
3) Due to a really stupid error on my part, the
QRT Ray Tracer Page 2 Addendum to 1.5
DiffColor() was executing a pow() function call
every time though, whether it needed to or not.
Since this pow() function is slow, QRT now runs
noticeably faster than it used to. I haven't
quantified the results, but it seems to be around
20 to 30 percent. The increase in speed will be
most noticeable on machines with no floating point
co-processor.
4) The TRIANGLE() command now works correctly for
non-right triangles. The bug fix for this also
fixed a bug with non - rectangular parallelograms.
5) Focal length is no longer resolution dependent.
6) CINFO structures are now always initialized before
they are copied. This bug fix was sent to me by
Paul Bayloz.
Enhancements
Additional information about the image is now sent to the
standard output. Image X and Y size, aspect ratio, and
focal length are printed.
I have finally revisited the original documentation files
to include some of the information from the addendums.
This will make it easier for new users of QRT to learn the
system. I fixed a bunch of spelling errors, too.
Tabs are now counted as white space; they will no longer
cause QRT to report an error message.
Deletions
The FIRST_SCAN and LAST_SCAN parameters have been
obsoleted by the addition of the X_RES and Y_RES commands.
These arguments are still accepted for backward
compatibility of old QRT files, but they are ignored.
In addition, since QRT has recently seen a wider audience
in the non-Amiga community, I have removed several
paragraphs from Addendum 1.4 which were strictly my
personal opinions of some other computer systems. They
might have been OK for the Amiga community, but seemed
less than appropriate for wider circulation.
QRT Ray Tracer Page 3 Addendum to 1.5
Notes, etc.
QRT has now been Un*xized - it will compile correctly under
AmigaDos or UN*X. I have added #define's for most common
machine types at the beginning of qrt.h, so these can be used
to add machine specific necessary compiler stuff for new
machines.
I have compiled QRT on an HP 9000/835 (proprietary RISC
architecture), and it *hauls*. It will run all the supplied
demos in less than 3 and a half minutes at a resolution of
320x400, and some of the simpler ones, such as Wall_Sphere.QRT
in less than one and a half minutes! I may try to compile
benchmark times for QRT on various platforms using standard
demos and standard resolutions. If anyone has any benchmark
times, I'd like to hear about them.
I have supplied source code for a QRT RAW to GIF converter,
written by David Rowley. This will eliminate the problem of
finding a post processor for anyone who has the capability of
displaying GIF images (this should be nearly everyone). The
program, called QRT2GIF, seems to work well, except for very
large image sizes where it cannot malloc() enough memory. It
claims to write a temporary file, but the final GIF file is
corrupt. It is also limited to 256 colors. I have used it up
to resolutions of 768 by 640, however, with no trouble. It's
a very useful tool. Thanks, Dave!
QRT Ray Tracer Page 4 Addendum to 1.5